/**请求拦截器 */
import axios from "axios";
import { getToken } from "@/utils/localStorage";

const request = axios.create({
  // baseURL: "/Mock/mock/473bd0d46f1d8a04d3fdc3116e8f1655/test",
  timeout: 5000,
  headers: { "Content-Type": "application/json; charset=utf-8" },
});

// 添加请求拦截器
request.interceptors.request.use(
  // config是请求信息，就是在请求之前来修改请求信息
  function (config) {
    if (getToken()) {
      config.headers.token = getToken();
    }
    // 在发送请求之前做些什么
    return config;
  },
  function (error) {
    // 对请求错误做些什么
    alert(`请求错误：${error}`);

    return Promise.reject(error);
  }
);

// 添加响应拦截器
// 拿到数据以后做的事情
request.interceptors.response.use(
  function (response) {
    // 对响应数据做点什么
    return response;
  },
  function (error) {
    // 对响应错误做点什么
    alert(`响应错误：${error}`);
    return Promise.reject(error);
  }
);

interface Idata {
  [propName: string]: unknown; //propName为形参
}
/**接口调用 */
export const requestGet = async (url: string, params?: Idata) => {
  return request({
    url,
    method: "get",
    params,
  });
};
export const requestPost = (url: string, data?: Idata) => {
  return request({
    url,
    method: "post",
    data,
  });
};
